< About IPS from WaveMaster's doc >

         Read the first 5 bytes of the .IPS file (the header)
         If header <> "PATCH" [0x50,0x41,0x54,0x43,0x48], ***END PROGRAM***

loop ---> Read the next 3 bytes from the .IPS (let's say, RST)

 |        If RST =  "EOF"[0x45, 0x4f, 0x46] then *** END PROGRAM ***
 |
 |        If RST <> "EOF" then RST represents the ADDRESS of source file
 |        that the next chunk of .IPS data will be placed at.
 |
 |        Read the next word (let's say XY)
 |
 |        If XY <> 0 then xy is the number of bytes to read
 |        from the .IPS file.  Read those bytes from the .IPS file, and
 |        copy the bytes to the address (rst) of the source file
 +------- (Return to top of loop)
 |
 |        If XY = 0 then read the next word (let's say "AB"), then read
 |        the next byte (let's say "C")
 |        Copy byte C, AB times to the source file, at address RST
 +------- (return to top of loop)